﻿using Lihong.Cms.Data;
using Lihong.Cms.Entity;
using Lihong.Cms.Web.Models;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;

namespace Lihong.Cms.Web.Controllers
{
    public class NewsController : Controller
    {
        // 一般用户：展示文章列表，点击某文章查看具体内容，搜索

        NewsMySqlRepository newsData = new NewsMySqlRepository();
        NewsCategoryRepository newsCategoryData = new NewsCategoryRepository();

        public IActionResult Index(int? id) //接收的id是新闻类别id，用类别id筛选要显示的新闻
        {
            //因为新闻页要显示新闻列表和新闻类别列表两种数据，
            //所以单独建立一个类来同时存放以上两种数据，发送给界面使用
            NewsListModel model = new NewsListModel();

            //读取文章列表
            ICollection<News> list = newsData.GetAll();
            if (id != null)
            {
                list = list.Where(x => x.CategoryId == id).ToList();    //LINQ查询  自己看书
            }
            model.News = list;  //得到新闻列表

            ICollection<NewsCategory> cates = newsCategoryData.GetAll();
            model.NewsCategories = cates;   //得到新闻类别列表

            return View(model);
        }

        public IActionResult Show(int id)
        {
            News news = newsData.Get(id);

            news.ViewCount++;
            newsData.Update(news);

            //读取一篇文章
            return View(news);
        }


        public IActionResult Delete(int id)
        {
            newsData.Delete(id);
            return Redirect("/News/Index");
        }

        // 管理员：修改文章，删除文章，查询列表，查看，搜索
    }
}
